#include "cppdefs.h"
      MODULE mod_strings
!
!svn $Id$
!================================================== Hernan G. Arango ===
!  Copyright (c) 2002-2018 The ROMS/TOMS Group                         !
!    Licensed under a MIT/X style license                              !
!    See License_ROMS.txt                                              !
!=======================================================================
!                                                                      !
!  cdt         F90/F95 compiler used.                                  !
!  fflags      F90/F95 compiler flags.                                 !
!  title       Title of model run.                                     !
!  Coptions    Activated C-preprocessing options.                      !
!  Mregion     Start index of message passage code profiling region.   !
!  Nregion     Number of total code profiling regions.                 !
!                                                                      !
!  StateMsg    Model state messages when reading:                      !
!                ( 1) state initial conditions                         !
!                ( 2) previous state initial conditions                !
!                ( 3) previous adjoint state solution                  !
!                ( 4) latest adjoint state solution                    !
!                ( 5) surface forcion and or OBC increments            !
!                ( 6) tangent linear model error forcing               !
!                ( 7) impulse forcing                                  !
!                ( 8) v-space increments                               !
!                ( 9) background state                                 !
!                (10) IC correlation standard deviation                !
!                (11) model error correlation standard deviation       !
!                (12) OBC correlation standard deviation               !
!                (13) surface forcing correlation standard deviation   !
!                (14) IC normalization factors                         !
!                (15) model error normalization factors                !
!                (16) OBC normalization factors                        !
!                (17) surface forcing normalization factors            !
!                                                                      !
!  Pregion     Model regions identifiers used for time profiling:      !
!                ( 1) Allocation and array initialization              !
!                ( 2) Ocean state initialization                       !
!                ( 3) Reading of input data                            !
!                ( 4) Processing of input data                         !
!                ( 5) Processing of output time averaged data          !
!                ( 6) Computation of vertical boundary conditions      !
!                ( 7) Computation of global information integrals      !
!                ( 8) Writing of output data                           !
!                ( 9) Model 2D kernel                                  !
!                (10) Lagrangian floats trajectories                   !
!                (11) Tidal forcing                                    !
!                (12) 2D/3D coupling, vertical metrics                 !
!                (13) Omega vertical velocity                          !
!                (14) Equation of state for seawater                   !
!                (15) Biological module, source/sink terms             !
!                (16) Sediment transport module, source/sink terms     !
!                (17) Atmosphere-Ocean bulk flux parameterization      !
!                (18) KPP vertical mixing parameterization             !
!                (19) GLS vertical mixing parameterization             !
!                (20) My2.5 vertical mixing parameterization           !
!                (21) 3D equations right-side terms                    !
!                (22) 3D equations predictor step                      !
!                (23) Pressure gradient                                !
!                (24) Harmonic mixing of tracers, S-surfaces           !
!                (25) Harmonic mixing of tracers, geopotentials        !
!                (26) Harmonic mixing of tracers, isopycnals           !
!                (27) Biharmonic mixing of tracers, S-surfaces         !
!                (28) Biharmonic mixing of tracers, geopotentials      !
!                (29) Biharmonic mixing of tracers, isopycnals         !
!                (30) Harmonic stress tensor, S-surfaces               !
!                (31) Harmonic stress tensor, geopotentials            !
!                (32) Biharmonic stress tensor, S-surfaces             !
!                (33) Biharmonic stress tensor, geopotentials          !
!                (34) Corrector time-step for 3D momentum              !
!                (35) Corrector time-step for tracers                  !
!                (36) Nesting Algorithm                                !
!                (37) Bottom boundary layer module                     !
!                (38) GST Analysis eigenproblem solution               !
!                (39) Two-way coupling to Atmosphere Model             !
!                (40) Two-way coupling to Sea Ice Model                !
!                (41) Two-way coupling to Wave Model                   !
!                (42) Reading model state vector                       !
!                (43) 4D-Var minimization solver                       !
!                (44) Background error covariance matrix               !
!                (45) Posterior error covariance matrix                !
!                (46) Unused 01                                        !
!                (47) Unused 02                                        !
!                (48) Unused 03                                        !
!                (49) Unused 04                                        !
!                (50) Unused 05                                        !
!                (51) Unused 06                                        !
!                (52) Unused 07                                        !
!                (53) Unused 08                                        !
!                (54) Unused 09                                        !
!                (55) Unused 10                                        !
!                (56) Unused 11                                        !
!                (57) Unused 12                                        !
!                (58) Unused 13                                        !
!                (59) Unused 14                                        !
!                (60) Message Passage: 2D halo exchanges               !
!                (61) Message Passage: 3D halo exchanges               !
!                (62) Message Passage: 4D halo exchanges               !
!                (63) Message Passage: lateral boundary exchanges      !
!                (64) Message Passage: data broadcast                  !
!                (65) Message Passage: data reduction                  !
!                (66) Message Passage: data gathering                  !
!                (67) Message Passage: data scattering                 !
!                (68) Message Passage: boundary data gathering         !
!                (69) Message Passage: point data gathering            !
!                (70) Message Passage: nesting point data gathering    !
!                (71) Message Passage: nesting array data gathering    !
!                (72) Message Passage: synchronization barrier         !
!                (73) Message Passage: multi-model coupling            !
!                                                                      !
!=======================================================================
!
        implicit none

        character (len=80)   :: title
        character (len=2048) :: Coptions

        integer, parameter :: Mregion = 60
        integer, parameter :: Iceregion = 74
        integer, parameter :: Pertregion = 81
        integer, parameter :: Nregion = 82

        character (len=48), dimension(17) :: StateMsg =                 &
     &    (/'state initial conditions,                       ',         & !01
     &      'previous state initial conditions,              ',         & !02
     &      'previous adjoint state solution,                ',         & !03
     &      'latest adjoint state solution,                  ',         & !04
     &      'surface forcing and or OBC increments,          ',         & !05
     &      'tangent linear model error forcing,             ',         & !06
     &      'impulse forcing,                                ',         & !07
     &      'v-space increments,                             ',         & !08
     &      'background state,                               ',         & !09
     &      'IC correlation standard deviation,              ',         & !10
     &      'model error correlation standard deviation,     ',         & !11
     &      'OBC correlation standard deviation,             ',         & !12
     &      'surface forcing correlation standard deviation, ',         & !13
     &      'IC normalization factors,                       ',         & !14
     &      'model error normalization factors,              ',         & !15
     &      'OBC normalization factors,                      ',         & !16
     &      'surface forcing normalization factors,          '/)          !17

        character (len=50), dimension(Nregion) :: Pregion =             &
     &    (/'Allocation and array initialization ..............',       & !01
     &      'Ocean state initialization .......................',       & !02
     &      'Reading of input data ............................',       & !03
     &      'Processing of input data .........................',       & !04
     &      'Processing of output time averaged data ..........',       & !05
     &      'Computation of vertical boundary conditions ......',       & !06
     &      'Computation of global information integrals ......',       & !07
     &      'Writing of output data ...........................',       & !08
     &      'Model 2D kernel ..................................',       & !09
     &      'Lagrangian floats trajectories ...................',       & !10
     &      'Tidal forcing ....................................',       & !11
     &      '2D/3D coupling, vertical metrics .................',       & !12
     &      'Omega vertical velocity ..........................',       & !13
     &      'Equation of state for seawater ...................',       & !14
     &      'Biological module, source/sink terms .............',       & !15
     &      'Sediment transport module, source/sink terms .....',       & !16
     &      'Atmosphere-Ocean bulk flux parameterization ......',       & !17
     &      'KPP vertical mixing parameterization .............',       & !18
     &      'GLS vertical mixing parameterization .............',       & !19
     &      'My2.5 vertical mixing parameterization ...........',       & !20
     &      '3D equations right-side terms ....................',       & !21
     &      '3D equations predictor step ......................',       & !22
     &      'Pressure gradient ................................',       & !23
     &      'Harmonic mixing of tracers, S-surfaces ...........',       & !24
     &      'Harmonic mixing of tracers, geopotentials ........',       & !25
     &      'Harmonic mixing of tracers, isopycnals ...........',       & !26
     &      'Biharmonic mixing of tracers, S-surfaces .........',       & !27
     &      'Biharmonic mixing of tracers, geopotentials ......',       & !28
     &      'Biharmonic mixing of tracers, isopycnals .........',       & !29
     &      'Harmonic stress tensor, S-surfaces ...............',       & !30
     &      'Harmonic stress tensor, geopotentials ............',       & !31
     &      'Biharmonic stress tensor, S-surfaces .............',       & !32
     &      'Biharmonic stress tensor, geopotentials ..........',       & !33
     &      'Corrector time-step for 3D momentum ..............',       & !34
     &      'Corrector time-step for tracers ..................',       & !35
     &      'Nesting algorithm ................................',       & !36
     &      'Bottom boundary layer module .....................',       & !37
     &      'GST Analysis eigenproblem solution ...............',       & !38
     &      'Two-way coupling to Atmosphere Model .............',       & !39
     &      'Two-way coupling to Sea Ice Model ................',       & !40
     &      'Two-way coupling to Wave Model ...................',       & !41
     &      'Reading model state vector .......................',       & !42
     &      '4D-Var minimization solver .......................',       & !43
     &      'Background error covariance matrix ...............',       & !44
     &      'Posterior error covariance matrix ................',       & !45
     &      'Unused 01 ........................................',       & !46
     &      'Unused 02 ........................................',       & !47
     &      'Unused 03 ........................................',       & !48
     &      'Unused 04 ........................................',       & !49
     &      'Unused 05 ........................................',       & !50
     &      'Unused 06 ........................................',       & !51
     &      'Unused 07 ........................................',       & !52
     &      'Unused 08 ........................................',       & !53
     &      'Unused 09 ........................................',       & !54
     &      'Unused 10 ........................................',       & !55
     &      'Unused 11 ........................................',       & !56
     &      'Unused 12 ........................................',       & !57
     &      'Unused 13 ........................................',       & !58
     &      'Unused 14 ........................................',       & !59
     &      'Message Passage: 2D halo exchanges ...............',       & !60
     &      'Message Passage: 3D halo exchanges ...............',       & !61
     &      'Message Passage: 4D halo exchanges ...............',       & !62
     &      'Message Passage: lateral boundary exchanges ......',       & !63
     &      'Message Passage: data broadcast ..................',       & !64
     &      'Message Passage: data reduction ..................',       & !65
     &      'Message Passage: data gathering ..................',       & !66
     &      'Message Passage: data scattering..................',       & !67
     &      'Message Passage: boundary data gathering .........',       & !68
     &      'Message Passage: point data gathering ............',       & !69
     &      'Message Passage: nesting point data gathering ....',       & !70
     &      'Message Passage: nesting array data gathering ....',       & !71
     &      'Message Passage: synchronization barrier .........',       & !72
     &      'Message Passage: multi-model coupling ............',       & !73
     &      'Unused 15 ........................................',       & !74
     &      'Unused 16 ........................................',       & !75
     &      'Ice thermodynamics................................',       & !76
     &      'Ice rheology coefficients.........................',       & !77
     &      'Iterative solver of ice dynamics..................',       & !78
     &      'Advection of ice tracers..........................',       & !79
     &      'Frazil ice........................................',       & !80
     &      'Computation of forcing perturbations..............',       & !81
     &      'Computation of perturbations on EOS...............'/)

!  The following variables are assigned during C-preprocessing.  They
!  have information about operating sytem, CPU hardware, compiling
!  system, compiler command, compiler flags, analytical directory,
!  header directory, application header file, and root directory.
!
        character (len=80)  :: my_os = MY_OS
        character (len=80)  :: my_cpu = MY_CPU
        character (len=80)  :: my_fort = MY_FORT
        character (len=80)  :: my_fc = MY_FC
        character (len=512) :: my_fflags = MY_FFLAGS
!
#ifdef ANALYTICAL_DIR
        character (len=256) :: Adir = ANALYTICAL_DIR
#else
        character (len=256) :: Adir = "NONE"
#endif
#ifdef HEADER_DIR
        character (len=256) :: Hdir = HEADER_DIR
#else
        character (len=256) :: Hdir = "NONE"
#endif
#ifdef ROMS_HEADER
        character (len=256) :: Hfile = HEADER
#else
        character (len=256) :: Hfile = "NONE"
#endif
#ifdef ROOT_DIR
        character (len=256) :: Rdir = ROOT_DIR
#else
        character (len=256) :: Rdir = "NONE"
#endif
!
      END MODULE mod_strings
